#include<iostream>
using namespace std;
int is_rc(int a[][10], int row, int col,int k)
{
	int i = 0;
	for (i; i < 9; i++)
	{
		if (a[row][i] == k)
			return 0;
	}
	for (i = 0; i < 9; i++)
	{
		if (a[i][col] == k)
			return 0;
	}
	return 1;
}
int is_area(int a[][10], int row, int col, int k)
{
	row = (row / 3) * 3;
	col = (col / 3) * 3;
	int i = row;
	for (i; i < row + 3; i++)
	{
		int j = col;
		for (j; j < col + 3; j++)
		{
			
			if (a[i][j] == k)
				return 0;
		}
	}
	return 1;
}
void DFS(int a[][10],int row,int col)
{
	if (col >= 9)
	{
		col=0;
		row++;
	}
	if (row >= 9)
	{
		int i = 0;
		for (i = 0; i < 9; i++)
		{
			int j = 0;
			for (j; j < 9; j++)
			{
				cout << a[i][j] << ' ';
			}
			cout << endl;
		}
		return;
	}
	if (a[row][col] == 0)
	{
		int i = 1;
		for (i; i < 10; i++)
		{
			if (is_rc(a, row, col,i) && is_area(a, row, col,i))
			{
				a[row][col] = i;
				DFS(a, row, col + 1);
			}

		}
		a[row][col] = 0;
	}
	else
	{
		DFS(a, row, col + 1);
	}
}
int main()
{
	int a[10][10] = { 0 };
	int i = 0;
	for (i; i < 9; i++)
	{
		int j = 0;
		for (j; j < 9; j++)
		{
			cin >> a[i][j];
		}
	}
	DFS(a, 0, 0);
	
}